Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

capitalize

Package Overview
Dependencies
Maintainers
2
Versions
21
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

capitalize

capitalize the first letter of a string, or all words in a string

  • 2.0.4
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
77K
increased by2.63%
Maintainers
2
Weekly downloads
 
Created
Source

capitalize Build

Capitalize the first letter of a string, or all words in a string.

Synopsis

Capitalize the first letter of a string:

var capitalize = require('capitalize')

var test = require('tape')

test('Capitalize first letter', function (t) {
  t.plan(1)
  t.equal(capitalize("united states"), "United states")
})

Or capitalize each word in a string:

test('Capitalize each word', function (t) {
  t.plan(1)
  t.equal(capitalize.words("united states"), "United States")
})

No matter the original case:

test('Capitalize first letter with original string...', function (t) {
  t.plan(2)

  t.test('...in upper case', function (t1) {
    t1.plan(1)
    t1.equal(capitalize.words("UNITED STATES"), "United States")
  })

  t.test('...in mixed case', function (t2) {
    t2.plan(1)
    t2.equal(capitalize.words("uNiTeD sTaTeS"), "United States")
  })

})

test('Capitalize each word with original string...', function (t) {
  t.plan(2)

  t.test('...in upper case', function (t1) {
    t1.plan(1)
    t1.equal(capitalize.words("UNITED STATES"), "United States")
  })

  t.test('...in mixed case', function (t2) {
    t2.plan(1)
    t2.equal(capitalize.words("uNiTeD sTaTeS"), "United States")
  })

})

Thanks to @c990802 and Stack Overflow, capitalize handles international characters:

test('Capitalize words with international characters', function (t) {
  t.plan(1)
  t.equal(capitalize.words('hello-cañapolísas'), 'Hello-Cañapolísas')
})

and thanks to @6akcuk it can also capitalize cyrillic characters:

test('Capitalize words with cyrillic characters', function (t) {
  t.plan(1)
  t.equal(capitalize.words('привет мир'), "Привет Мир")
})

and thanks to @ultraflynn and @DatGuyJonathon capitalize properly handles quotes within the string:

test('Capitalize each word, ignoring quotes', function(t) {
    t.plan(1)
    t.equal(capitalize.words("it's a nice day"), "It's A Nice Day")
})

test('Quotes test case 2', function(t) {
    t.plan(1)
    t.equal(capitalize.words("It’s a Boy"), "It’s A Boy")
})

test('Handles embedded quotes', function(t) {
    t.plan(1)
    t.equal(capitalize.words("'There's angels among us'"), "'There's Angels Among Us'")
})

and thanks to @sergejkaravajnij, capitalize also supports a second boolean parameter to preserve casing of the rest of the strings content:

test('Capitalize a string, preserving the original case of other letters', function (t) {
  t.plan(1)
  t.equal(capitalize('canDoItRight', true), 'CanDoItRight')
})

test('Capitalize words, preserving the case', function (t) {
  t.plan(1)
  t.equal(capitalize.words('on gitHub', true), 'On GitHub')
})

and thanks to @rubengmurray, capitalize now handles shorthand ordinal numbers as would be expected:

test('Capitalize words, handling shorthand ordinals (1st, 2nd, 3rd) correctly', function (t) {
  t.plan(1)
  t.equal(capitalize.words('1st place'), '1st Place')
})

and thanks to a suggestion from @Songyu-Wang, capitalize supports skipping words that should never be capitalized (e.g. articles and coordinating conjunctions in English).

test('Title-case words, by providing a skipWord regex', function (t) {
  t.plan(1)
  var opts = { skipWord: /^(a|the|an|and|or|but|in|on|of|it)$/ }
  t.equal(
    capitalize.words('the story of an unlikely feature and the way it was implemented', opts),
    'The Story of an Unlikely Feature and the Way it Was Implemented'
  )
})

test('Title-case words, by providing a skipWord callback', function (t) {
  t.plan(1)
  t.equal(
    capitalize.words('this is nice eh?', { skipWord: (word) => word.length < 3 }),
    'This is Nice eh?'
  )
})

Install

npm install capitalize

License

MIT

Keywords

FAQs

Package last updated on 24 Oct 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc